@echo off
chcp 65001 >nul

set "TITLE=六度-周期性报告生成器 - 一键打包工具"
set "COMPANY=by: 六度科技 04826d.cn"
set "CLEANING=清理旧的打包文件..."
set "CHECKING=正在检查环境..."
set "ACTIVATING=激活虚拟环境..."
set "INSTALLING=安装 PyInstaller..."
set "BUILDING=开始使用现有配置文件打包应用程序..."
set "WAITING=等待打包完成..."
set "RESULT_CHECK=检查打包结果..."
set "SUCCESS=分发包创建完成！"
set "USAGE_5=    5. 包含完整的模板和配置文件"
set "SEPARATOR=============================================================="

echo %SEPARATOR%
echo %TITLE%
echo %COMPANY%
echo %SEPARATOR%
echo.

:: 清理旧文件
echo %CLEANING%
if exist "dist" rmdir /s /q "dist"

echo %CHECKING%
cd server

:: 检查虚拟环境
if not exist "venv\Scripts\activate.bat" (
    echo 错误: 虚拟环境不存在，请先运行 start_server.bat 进行初始化
    pause
    exit /b 1
)

:: 检查必要文件
if not exist "client" (
    echo 错误: client 目录不存在
    pause
    exit /b 1
)

if not exist "templates" (
    echo 错误: templates 目录不存在
    pause
    exit /b 1
)

if not exist "config.json" (
    echo 错误: config.json 文件不存在
    pause
    exit /b 1
)

if not exist "六度报告生成器.spec" (
    echo 错误: 六度报告生成器.spec 文件不存在
    pause
    exit /b 1
)

:: 激活虚拟环境
echo %ACTIVATING%
call venv\Scripts\activate.bat

:: 检查并安装 PyInstaller
echo 检查 PyInstaller...
pip show pyinstaller >nul 2>&1
if errorlevel 1 (
    echo %INSTALLING%
    pip install pyinstaller
    if errorlevel 1 (
        echo 错误: PyInstaller 安装失败
        pause
        exit /b 1
    )
)

if exist "build" rmdir /s /q "build"

:: 使用现有的.spec文件进行打包
echo %BUILDING%
echo.
pyinstaller --clean "六度报告生成器.spec"

:: 添加延迟等待打包完成
echo %WAITING%
timeout /t 5 /nobreak >nul

:: 检查打包结果
echo %RESULT_CHECK%
echo 当前目录: %CD%
if exist "dist\六度报告生成器.exe" (
    echo 找到exe文件
    
    :: 创建项目根目录的dist文件夹
    cd ..
    echo 切换到项目根目录: %CD%
    if not exist "dist" mkdir "dist"
    
    :: 复制exe到根目录的dist文件夹
    echo 复制exe文件
    copy "server\dist\六度报告生成器.exe" "dist\"
    if errorlevel 1 (
        echo 错误: 复制exe文件失败
        dir "server\dist\六度报告生成器.exe"
        pause
        exit /b 1
    )
    echo exe文件复制成功
    
    :: 清理打包临时文件
    echo 清理打包临时文件
    if exist "server\build" rmdir /s /q "server\build"
    if exist "server\dist" rmdir /s /q "server\dist"
    
    echo %SEPARATOR%
    echo %SUCCESS%
    echo 位置: dist\六度报告生成器.exe
    echo 大小: 
    for %%f in ("dist\六度报告生成器.exe") do echo %%~zf 字节
    echo.
    echo 使用说明:
    echo    1. 将整个 dist 文件夹复制给用户
    echo    2. 用户双击 六度报告生成器.exe 即可运行
    echo    3. 无需安装 Python 环境
    echo    4. exe首次运行会自动释放前端文件
    echo %USAGE_5%
    echo %SEPARATOR%
) else (
    echo 错误: 未找到生成的exe文件
    echo 打包可能失败，请检查上方的错误信息
    echo 当前server目录内容:
    dir
    if exist "dist" (
        echo server\dist目录内容:
        dir dist
    )
)

echo.
pause 